// step 1# 定义二叉树结构体
typedef struct TreeNode TreeNode;

// step 2# 求最大深度的辅助函数
int getDepth(TreeNode* node) {
    if (node == NULL) return 0;

    int leftDepth = getDepth(node->left);         // 左子树深度
    int rightDepth = getDepth(node->right);       // 右子树深度

    // 返回当前节点深度 = 1 + 左右子树较大者
    return 1 + (leftDepth > rightDepth ? leftDepth : rightDepth);
}

// step 3# 主函数：返回整棵树的最大深度
int maxDepth(TreeNode* root) {
    return getDepth(root);
}
